<?php
/**
 * OffersApiTest
 * PHP version 8.3
 *
 * @category Class
 * @package  SpApi
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 */

/**
 * Selling Partner API for Replenishment
 *
 * The Selling Partner API for Replenishment (Replenishment API) provides programmatic access to replenishment program metrics and offers. These programs provide recurring delivery of any replenishable item at a frequency chosen by the customer.  The Replenishment API is available worldwide wherever Amazon Subscribe & Save is available or is supported. The API is available to vendors and FBA selling partners.
 *
 * The version of the OpenAPI document: 2022-11-07
 * Generated by: https://openapi-generator.tech
 * Generator version: 7.9.0
 */

/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Please update the test case below to test the endpoint.
 */

namespace SpApi\Test\Api;

use SpApi\ApiException;
use SpApi\Api\replenishment\v2022_11_07\OffersApi;
use SpApi\ObjectSerializer;

/**
 * OffersApiTest Class Doc Comment
 *
 * @category Class
 * @package  SpApi
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 */
class OffersApiTest extends BaseTestCase
{
    private OffersApi $apiInstance;
    public function setUp(): void
    {
        parent::setUp();
        // Initialize parameter value specific to case
        $this->testHelper->setSpecificValue('OffersApi', $this->getName());
        $this->apiInstance = new OffersApi($this->config, null);
        // Change Time Format if it requires
        $specificTimeFormat = $this->testHelper->getDateTimeFormatForCase('OffersApi');
        if ($specificTimeFormat) {
            ObjectSerializer::setDateTimeFormat($specificTimeFormat);
        }
    }

    /**
     * Test case for listOfferMetrics_200
     */
    public function testListOfferMetrics200()
    {
        try {
            // Skip test if it is in the skip list
            if ($this->testHelper->shouldSkipTest('testListOfferMetrics200', 'OffersApi')) {
                $this->assertTrue(true);
                return;
            }
            $jsonSchema = '{
  &quot;description&quot; : &quot;Success.&quot;,
  &quot;headers&quot; : {
    &quot;x-amzn-RequestId&quot; : {
      &quot;description&quot; : &quot;Unique request reference identifier.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    },
    &quot;x-amzn-RateLimit-Limit&quot; : {
      &quot;description&quot; : &quot;Your rate limit (requests per second) for this operation.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    }
  },
  &quot;content&quot; : {
    &quot;application/json&quot; : {
      &quot;schema&quot; : {
        &quot;$ref&quot; : &quot;#/components/schemas/ListOfferMetricsResponse&quot;
      },
      &quot;example&quot; : {
        &quot;offers&quot; : [ {
          &quot;notDeliveredDueToOOS&quot; : 30.78,
          &quot;shippedSubscriptionUnits&quot; : 20,
          &quot;totalSubscriptionsRevenue&quot; : 12.89,
          &quot;asin&quot; : &quot;B000TMUDOW&quot;,
          &quot;revenuePenetration&quot; : 10.34,
          &quot;lostRevenueDueToOOS&quot; : 12.32,
          &quot;couponsRevenuePenetration&quot; : 10,
          &quot;shareOfCouponSubscriptions&quot; : 24.04,
          &quot;timeInterval&quot; : {
            &quot;endDate&quot; : &quot;2023-03-11T00:00:00Z&quot;,
            &quot;startDate&quot; : &quot;2023-03-05T00:00:00Z&quot;
          },
          &quot;currencyCode&quot; : &quot;USD&quot;
        }, {
          &quot;notDeliveredDueToOOS&quot; : 40.78,
          &quot;shippedSubscriptionUnits&quot; : 40,
          &quot;totalSubscriptionsRevenue&quot; : 34.03,
          &quot;asin&quot; : &quot;B004CLH5CY&quot;,
          &quot;revenuePenetration&quot; : 9.87,
          &quot;lostRevenueDueToOOS&quot; : 17.82,
          &quot;couponsRevenuePenetration&quot; : 17,
          &quot;shareOfCouponSubscriptions&quot; : 20.04,
          &quot;timeInterval&quot; : {
            &quot;endDate&quot; : &quot;2023-03-11T00:00:00Z&quot;,
            &quot;startDate&quot; : &quot;2023-03-05T00:00:00Z&quot;
          },
          &quot;currencyCode&quot; : &quot;USD&quot;
        } ],
        &quot;pagination&quot; : {
          &quot;totalResults&quot; : 17
        }
      }
    }
  },
  &quot;x-amzn-api-sandbox&quot; : {
    &quot;static&quot; : [ {
      &quot;request&quot; : {
        &quot;parameters&quot; : {
          &quot;body&quot; : {
            &quot;value&quot; : {
              &quot;filters&quot; : {
                &quot;aggregationFrequency&quot; : &quot;YEAR&quot;,
                &quot;timeInterval&quot; : {
                  &quot;startDate&quot; : &quot;2022-01-01T00:00:00Z&quot;,
                  &quot;endDate&quot; : &quot;2022-12-31T00:00:00Z&quot;
                },
                &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
                &quot;programTypes&quot; : [ &quot;SUBSCRIBE_AND_SAVE&quot; ],
                &quot;timePeriodType&quot; : &quot;PERFORMANCE&quot;,
                &quot;asins&quot; : [ &quot;B07CYBR5GZ&quot;, &quot;B07CYJJW8H&quot; ]
              },
              &quot;pagination&quot; : {
                &quot;limit&quot; : 2,
                &quot;offset&quot; : 0
              },
              &quot;sort&quot; : {
                &quot;order&quot; : &quot;ASC&quot;,
                &quot;key&quot; : &quot;TOTAL_SUBSCRIPTIONS_REVENUE&quot;
              }
            }
          }
        }
      },
      &quot;response&quot; : {
        &quot;offers&quot; : [ {
          &quot;asin&quot; : &quot;B07CYBR5GZ&quot;,
          &quot;notDeliveredDueToOOS&quot; : 10.2,
          &quot;totalSubscriptionsRevenue&quot; : 100.45,
          &quot;revenuePenetration&quot; : 23.6,
          &quot;shippedSubscriptionUnits&quot; : 100,
          &quot;activeSubscriptions&quot; : 100,
          &quot;lostRevenueDueToOOS&quot; : 12.32,
          &quot;couponsRevenuePenetration&quot; : 10,
          &quot;shareOfCouponSubscriptions&quot; : 20.04,
          &quot;timeInterval&quot; : {
            &quot;startDate&quot; : &quot;2022-01-01T00:00:00Z&quot;,
            &quot;endDate&quot; : &quot;2022-12-31T00:00:00Z&quot;
          },
          &quot;currencyCode&quot; : &quot;USD&quot;
        }, {
          &quot;asin&quot; : &quot;B07CYJJW8H&quot;,
          &quot;notDeliveredDueToOOS&quot; : 12.78,
          &quot;totalSubscriptionsRevenue&quot; : 80.11,
          &quot;revenuePenetration&quot; : 35.9,
          &quot;shippedSubscriptionUnits&quot; : 100,
          &quot;activeSubscriptions&quot; : 100,
          &quot;lostRevenueDueToOOS&quot; : 17.82,
          &quot;couponsRevenuePenetration&quot; : 17,
          &quot;shareOfCouponSubscriptions&quot; : 19.2,
          &quot;timeInterval&quot; : {
            &quot;startDate&quot; : &quot;2022-01-01T00:00:00Z&quot;,
            &quot;endDate&quot; : &quot;2022-12-31T00:00:00Z&quot;
          },
          &quot;currencyCode&quot; : &quot;USD&quot;
        } ],
        &quot;pagination&quot; : {
          &quot;totalResults&quot; : 17
        }
      }
    } ]
  }
}';
            $result = $this->testHelper->extractRequestAndResponse(
                $this->apiInstance,
                $jsonSchema,
                'listOfferMetrics'
            );
            $requestParams = $result['requestParams'];
            $expectedResponse = $result['expectedResponse'];

            // Change Time Format if it requires
            $specificTimeFormat = $this->testHelper->getDateTimeFormatForCase('OffersApi');
            if ($specificTimeFormat) {
                ObjectSerializer::setDateTimeFormat($specificTimeFormat);
            }

            // Act: Call API
            list($response, $statusCode, $headers) =
                $this->apiInstance->listOfferMetricsWithHttpInfo(...array_values($requestParams));

            // Assert the response code
            $this->assertHttpStatusCode(200, $statusCode);

            // Handle different response codes
            $this->handleResponse($response, $statusCode, 200, $expectedResponse);
        } catch (ApiException $e) {
            $this->handleApiException($e, 200);
        } catch (\ReflectionException $e) {
            $this->fail("Reflection exception: " . $e->getMessage());
        }
    }
    /**
     * Test case for listOfferMetrics_400
     */
    public function testListOfferMetrics400()
    {
        try {
            // Skip test if it is in the skip list
            if ($this->testHelper->shouldSkipTest('testListOfferMetrics400', 'OffersApi')) {
                $this->assertTrue(true);
                return;
            }
            $jsonSchema = '{
  &quot;description&quot; : &quot;Request has missing or invalid parameters and cannot be parsed.&quot;,
  &quot;headers&quot; : {
    &quot;x-amzn-RequestId&quot; : {
      &quot;description&quot; : &quot;Unique request reference identifier.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    },
    &quot;x-amzn-RateLimit-Limit&quot; : {
      &quot;description&quot; : &quot;Your rate limit (requests per second) for this operation.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    }
  },
  &quot;content&quot; : {
    &quot;application/json&quot; : {
      &quot;schema&quot; : {
        &quot;$ref&quot; : &quot;#/components/schemas/ErrorList&quot;
      }
    }
  },
  &quot;x-amzn-api-sandbox&quot; : {
    &quot;static&quot; : [ {
      &quot;request&quot; : {
        &quot;parameters&quot; : {
          &quot;body&quot; : {
            &quot;value&quot; : {
              &quot;filters&quot; : {
                &quot;aggregationFrequency&quot; : &quot;DAY&quot;,
                &quot;timeInterval&quot; : {
                  &quot;startDate&quot; : &quot;2022-01-01T00:00:00Z&quot;,
                  &quot;endDate&quot; : &quot;2022-12-31T00:00:00Z&quot;
                },
                &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
                &quot;programTypes&quot; : [ &quot;SUBSCRIBE_AND_SAVE&quot; ],
                &quot;timePeriodType&quot; : &quot;PERFORMANCE&quot;,
                &quot;asins&quot; : [ &quot;B07CYBR5GZ&quot; ]
              },
              &quot;pagination&quot; : {
                &quot;limit&quot; : 1,
                &quot;offset&quot; : 0
              },
              &quot;sort&quot; : {
                &quot;order&quot; : &quot;ASC&quot;,
                &quot;key&quot; : &quot;TOTAL_SUBSCRIPTIONS_REVENUE&quot;
              }
            }
          }
        }
      },
      &quot;response&quot; : {
        &quot;errors&quot; : [ {
          &quot;code&quot; : &quot;InvalidInput&quot;,
          &quot;message&quot; : &quot;Unsupported aggregationFrequency is provided. Only WEEK, MONTH, QUARTER and YEAR are supported&quot;
        } ]
      }
    } ]
  }
}';
            $result = $this->testHelper->extractRequestAndResponse(
                $this->apiInstance,
                $jsonSchema,
                'listOfferMetrics'
            );
            $requestParams = $result['requestParams'];
            $expectedResponse = $result['expectedResponse'];

            // Change Time Format if it requires
            $specificTimeFormat = $this->testHelper->getDateTimeFormatForCase('OffersApi');
            if ($specificTimeFormat) {
                ObjectSerializer::setDateTimeFormat($specificTimeFormat);
            }

            // Act: Call API
            list($response, $statusCode, $headers) =
                $this->apiInstance->listOfferMetricsWithHttpInfo(...array_values($requestParams));

            // Assert the response code
            $this->assertHttpStatusCode(400, $statusCode);

            // Handle different response codes
            $this->handleResponse($response, $statusCode, 400, $expectedResponse);
        } catch (ApiException $e) {
            $this->handleApiException($e, 400);
        } catch (\ReflectionException $e) {
            $this->fail("Reflection exception: " . $e->getMessage());
        }
    }
    /**
     * Test case for listOfferMetrics_401
     */
    public function testListOfferMetrics401()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_403
     */
    public function testListOfferMetrics403()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_404
     */
    public function testListOfferMetrics404()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_413
     */
    public function testListOfferMetrics413()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_415
     */
    public function testListOfferMetrics415()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_429
     */
    public function testListOfferMetrics429()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_500
     */
    public function testListOfferMetrics500()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOfferMetrics_503
     */
    public function testListOfferMetrics503()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_200
     */
    public function testListOffers200()
    {
        try {
            // Skip test if it is in the skip list
            if ($this->testHelper->shouldSkipTest('testListOffers200', 'OffersApi')) {
                $this->assertTrue(true);
                return;
            }
            $jsonSchema = '{
  &quot;description&quot; : &quot;Success.&quot;,
  &quot;headers&quot; : {
    &quot;x-amzn-RequestId&quot; : {
      &quot;description&quot; : &quot;Unique request reference identifier.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    },
    &quot;x-amzn-RateLimit-Limit&quot; : {
      &quot;description&quot; : &quot;Your rate limit (requests per second) for this operation.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    }
  },
  &quot;content&quot; : {
    &quot;application/json&quot; : {
      &quot;schema&quot; : {
        &quot;$ref&quot; : &quot;#/components/schemas/ListOffersResponse&quot;
      },
      &quot;example&quot; : {
        &quot;offers&quot; : [ {
          &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
          &quot;offerProgramConfiguration&quot; : {
            &quot;preferences&quot; : {
              &quot;autoEnrollment&quot; : &quot;OPTED_IN&quot;
            },
            &quot;promotions&quot; : {
              &quot;sellingPartnerFundedBaseDiscount&quot; : {
                &quot;percentage&quot; : 5
              },
              &quot;sellingPartnerFundedTieredDiscount&quot; : {
                &quot;percentage&quot; : 0
              },
              &quot;amazonFundedBaseDiscount&quot; : {
                &quot;percentage&quot; : 5
              },
              &quot;amazonFundedTieredDiscount&quot; : {
                &quot;percentage&quot; : 10
              }
            },
            &quot;enrollmentMethod&quot; : &quot;AUTOMATIC&quot;
          },
          &quot;programType&quot; : &quot;SUBSCRIBE_AND_SAVE&quot;,
          &quot;eligibility&quot; : &quot;ELIGIBLE&quot;,
          &quot;asin&quot; : &quot;B09KR5B7FH&quot;,
          &quot;sku&quot; : &quot;SKU_OPTED_IN&quot;
        } ],
        &quot;pagination&quot; : {
          &quot;totalResults&quot; : 1
        }
      }
    }
  },
  &quot;x-amzn-api-sandbox&quot; : {
    &quot;static&quot; : [ {
      &quot;request&quot; : {
        &quot;parameters&quot; : {
          &quot;body&quot; : {
            &quot;value&quot; : {
              &quot;filters&quot; : {
                &quot;eligibilities&quot; : [ &quot;ELIGIBLE&quot; ],
                &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
                &quot;programTypes&quot; : [ &quot;SUBSCRIBE_AND_SAVE&quot; ],
                &quot;preferences&quot; : {
                  &quot;autoEnrollment&quot; : [ &quot;OPTED_IN&quot;, &quot;OPTED_OUT&quot; ]
                },
                &quot;promotions&quot; : {
                  &quot;sellingPartnerFundedTieredDiscount&quot; : {
                    &quot;percentage&quot; : [ 0, 5, 10 ]
                  }
                }
              },
              &quot;pagination&quot; : {
                &quot;limit&quot; : 25,
                &quot;offset&quot; : 0
              },
              &quot;sort&quot; : {
                &quot;order&quot; : &quot;ASC&quot;,
                &quot;key&quot; : &quot;ASIN&quot;
              }
            }
          }
        }
      },
      &quot;response&quot; : {
        &quot;offers&quot; : [ {
          &quot;asin&quot; : &quot;B07CYBR5GZ&quot;,
          &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
          &quot;sku&quot; : &quot;TEST_SKU_A&quot;,
          &quot;eligibility&quot; : &quot;ELIGIBLE&quot;,
          &quot;vendorCodes&quot; : [ &quot;ABCDE&quot;, &quot;PQRST&quot; ],
          &quot;offerProgramConfiguration&quot; : {
            &quot;preferences&quot; : {
              &quot;autoEnrollment&quot; : &quot;OPTED_IN&quot;
            },
            &quot;promotions&quot; : {
              &quot;sellingPartnerFundedBaseDiscount&quot; : {
                &quot;percentage&quot; : 0
              },
              &quot;sellingPartnerFundedTieredDiscount&quot; : {
                &quot;percentage&quot; : 5
              },
              &quot;amazonFundedBaseDiscount&quot; : {
                &quot;percentage&quot; : 10
              },
              &quot;amazonFundedTieredDiscount&quot; : {
                &quot;percentage&quot; : 15
              }
            },
            &quot;enrollmentMethod&quot; : &quot;AUTOMATIC&quot;
          },
          &quot;programType&quot; : &quot;SUBSCRIBE_AND_SAVE&quot;
        }, {
          &quot;asin&quot; : &quot;B07CYCR5GZ&quot;,
          &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
          &quot;sku&quot; : &quot;TEST_SKU_A&quot;,
          &quot;eligibility&quot; : &quot;ELIGIBLE&quot;,
          &quot;vendorCodes&quot; : [ &quot;ABCDE&quot;, &quot;PQRST&quot; ],
          &quot;offerProgramConfiguration&quot; : {
            &quot;preferences&quot; : {
              &quot;autoEnrollment&quot; : &quot;OPTED_IN&quot;
            },
            &quot;promotions&quot; : {
              &quot;sellingPartnerFundedBaseDiscount&quot; : {
                &quot;percentage&quot; : 5
              },
              &quot;sellingPartnerFundedTieredDiscount&quot; : {
                &quot;percentage&quot; : 0
              },
              &quot;amazonFundedBaseDiscount&quot; : {
                &quot;percentage&quot; : 5
              },
              &quot;amazonFundedTieredDiscount&quot; : {
                &quot;percentage&quot; : 10
              }
            },
            &quot;enrollmentMethod&quot; : &quot;AUTOMATIC&quot;
          },
          &quot;programType&quot; : &quot;SUBSCRIBE_AND_SAVE&quot;
        } ],
        &quot;pagination&quot; : {
          &quot;totalResults&quot; : 2
        }
      }
    } ]
  }
}';
            $result = $this->testHelper->extractRequestAndResponse(
                $this->apiInstance,
                $jsonSchema,
                'listOffers'
            );
            $requestParams = $result['requestParams'];
            $expectedResponse = $result['expectedResponse'];

            // Change Time Format if it requires
            $specificTimeFormat = $this->testHelper->getDateTimeFormatForCase('OffersApi');
            if ($specificTimeFormat) {
                ObjectSerializer::setDateTimeFormat($specificTimeFormat);
            }

            // Act: Call API
            list($response, $statusCode, $headers) =
                $this->apiInstance->listOffersWithHttpInfo(...array_values($requestParams));

            // Assert the response code
            $this->assertHttpStatusCode(200, $statusCode);

            // Handle different response codes
            $this->handleResponse($response, $statusCode, 200, $expectedResponse);
        } catch (ApiException $e) {
            $this->handleApiException($e, 200);
        } catch (\ReflectionException $e) {
            $this->fail("Reflection exception: " . $e->getMessage());
        }
    }
    /**
     * Test case for listOffers_400
     */
    public function testListOffers400()
    {
        try {
            // Skip test if it is in the skip list
            if ($this->testHelper->shouldSkipTest('testListOffers400', 'OffersApi')) {
                $this->assertTrue(true);
                return;
            }
            $jsonSchema = '{
  &quot;description&quot; : &quot;Request has missing or invalid parameters and cannot be parsed.&quot;,
  &quot;headers&quot; : {
    &quot;x-amzn-RequestId&quot; : {
      &quot;description&quot; : &quot;Unique request reference identifier.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    },
    &quot;x-amzn-RateLimit-Limit&quot; : {
      &quot;description&quot; : &quot;Your rate limit (requests per second) for this operation.&quot;,
      &quot;schema&quot; : {
        &quot;type&quot; : &quot;string&quot;
      }
    }
  },
  &quot;content&quot; : {
    &quot;application/json&quot; : {
      &quot;schema&quot; : {
        &quot;$ref&quot; : &quot;#/components/schemas/ErrorList&quot;
      }
    }
  },
  &quot;x-amzn-api-sandbox&quot; : {
    &quot;static&quot; : [ {
      &quot;request&quot; : {
        &quot;parameters&quot; : {
          &quot;body&quot; : {
            &quot;value&quot; : {
              &quot;filters&quot; : {
                &quot;eligibilities&quot; : [ &quot;BAD_VALUE&quot; ],
                &quot;marketplaceId&quot; : &quot;ATVPDKIKX0DER&quot;,
                &quot;programTypes&quot; : [ &quot;SUBSCRIBE_AND_SAVE&quot; ]
              },
              &quot;pagination&quot; : {
                &quot;limit&quot; : 25,
                &quot;offset&quot; : 0
              },
              &quot;sort&quot; : {
                &quot;order&quot; : &quot;ASC&quot;,
                &quot;key&quot; : &quot;ASIN&quot;
              }
            }
          }
        }
      },
      &quot;response&quot; : {
        &quot;errors&quot; : [ {
          &quot;code&quot; : &quot;InvalidInput&quot;,
          &quot;message&quot; : &quot;Unsupported eligibility is provided. Only ELIGIBLE, INELIGIBLE, SUSPENDED and REPLENISHMENT_ONLY_ORDERING are supported&quot;
        } ]
      }
    } ]
  }
}';
            $result = $this->testHelper->extractRequestAndResponse(
                $this->apiInstance,
                $jsonSchema,
                'listOffers'
            );
            $requestParams = $result['requestParams'];
            $expectedResponse = $result['expectedResponse'];

            // Change Time Format if it requires
            $specificTimeFormat = $this->testHelper->getDateTimeFormatForCase('OffersApi');
            if ($specificTimeFormat) {
                ObjectSerializer::setDateTimeFormat($specificTimeFormat);
            }

            // Act: Call API
            list($response, $statusCode, $headers) =
                $this->apiInstance->listOffersWithHttpInfo(...array_values($requestParams));

            // Assert the response code
            $this->assertHttpStatusCode(400, $statusCode);

            // Handle different response codes
            $this->handleResponse($response, $statusCode, 400, $expectedResponse);
        } catch (ApiException $e) {
            $this->handleApiException($e, 400);
        } catch (\ReflectionException $e) {
            $this->fail("Reflection exception: " . $e->getMessage());
        }
    }
    /**
     * Test case for listOffers_401
     */
    public function testListOffers401()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_403
     */
    public function testListOffers403()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_404
     */
    public function testListOffers404()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_413
     */
    public function testListOffers413()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_415
     */
    public function testListOffers415()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_429
     */
    public function testListOffers429()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_500
     */
    public function testListOffers500()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
    /**
     * Test case for listOffers_503
     */
    public function testListOffers503()
    {
        // Skip this test
        $this->markTestSkipped('Skip test for this operation.');
    }
}
